Le fichier .env contient des variables clés :
N8N_HOST : nom d’hôte que l’interface affichera et utilisera pour générer les URLs
N8N_WEBHOOK_URL : URL accessible publiquement pour que les webhooks fonctionnent correctement
POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD : informations de connexion à la base de données PostgreSQL
N8N_GENERIC_TIMEZONE : fuseau horaire, impactant l’exécution des workflows
Le docker-compose.yml comprend deux services principaux :
postgres : basé sur l’image officielle PostgreSQL avec réglage des variables d’environnement, volumes pour la persistance et contrôle de santé
n8n : image docker officielle n8n, configuration des variables d’environnement pour connecter l’application à la base, gestion des ports, volume pour persister la data et fichiers, dépendance santé sur PostgreSQL.
En configurant via ces deux fichiers, vous créez un environnement automatisé, reproductible et facilement modifiable. C’est la force combinée du logiciel libre, Docker, et Linux. Cette méthode vous prémunit aussi contre les erreurs de dépendances ou incompatibilités entre versions.
Etape 3 : Démarrer et gérer les conteneurs Docker pour n8n sur système Linux Une fois l’environnement prêt, il faut s’assurer que les permissions sur les dossiers montés soient correctes afin d’éviter que le conteneur n8n ne rencontre de difficultés à écrire ses fichiers. Dans la majorité des cas, un réglage chmod 777 sur le dossier destiné à contenir les données de n8n s’avère nécessaire, bien que cette approche soit permissive et demande de bien comprendre les risques associés.
Lancer les conteneurs avec la commande suivante permet d’initier et déployer les services en arrière-plan :
sudo docker compose up -d
Surveillez l’état des conteneurs via :
sudo docker compose ps pour voir la liste des conteneurs actifs et leur statut
sudo docker compose logs -f pour visualiser en temps réel les journaux de sortie, indispensable en cas de problème
Le conteneur PostgreSQL doit passer en « healthy » (état sain) pour que n8n puisse se connecter correctement et démarrer sans erreur. Les logs afficheront des messages tels que :
“Editor is now accessible via: https://n8n.it-connect.local”
Ce message confirme que le service est opérationnel et prêt à l’usage à travers le port 5678, accessible depuis votre navigateur via le nom de domaine configuré. L’utilisation d’un gestionnaire de logs simplifie grandement le diagnostic lorsque l’on déploie des solutions complexes reposant sur Node.js, base de données PostgreSQL et middleware.
Etape 4 : Configurer un reverse proxy Nginx pour sécuriser et exposer n8n en HTTPS sur Linux Un reverse proxy est une brique fondamentale pour sécuriser l’accès à n8n, surtout si vous exploitez des webhooks ou exposez votre automation à travers Internet. Nginx s’impose comme un choix optimal sur Linux pour sa légèreté, fiabilité et facilité de configuration. Au lieu d’exposer directement le port Docker 5678, Nginx joue l’intermédiaire, permettant d’appliquer un certificat SSL/TLS et de gérer redirections et entêtes HTTP essentielles.
Voici les étapes-clés :
Installer Nginx via le gestionnaire de paquets, par exemple « sudo apt install nginx » sur Debian/Ubuntu.
Créer un répertoire pour stocker le certificat SSL auto-signé ou généré par Let’s Encrypt.
Générer un certificat avec OpenSSL (ou via Certbot pour Let’s Encrypt) :
« sudo openssl req -x509 -nodes -days 365 -newkey rsa:4096 -keyout /etc/nginx/ssl/n8n.key -out /etc/nginx/ssl/n8n.crt »
La configuration Nginx doit inclure deux blocs serveur :
Un bloc écoutant sur le port 80, qui fera une redirection 301 vers HTTPS.
Un bloc HTTPS, avec certificat, gestion des protocoles TLS 1.2 et 1.3, et configuration du proxy_pass sur http://127.0.0.1:5678 où tourne n8n.